Skip to content

Feature requests start with the current situation and user value - #89

Merged
Marius Storhaug (MariusStorhaug) merged 6 commits into
mainfrom
psmodule-feature-intake
Nov 11, 2026
Merged

Marius Storhaug (MariusStorhaug) merged 6 commits into
mainfrom
psmodule-feature-intake

Conversation

@MariusStorhaug

@MariusStorhaug Marius Storhaug (MariusStorhaug) commented Oct 31, 2026 •

Copy link
Copy Markdown
Member

Feature contributors give the current situation first, then the user benefit, the requested change, and an example of the expected result. The inherited PSModule feature form uses direct instructions and present-tense maintainer responsibilities. Its identity, declared labels, single required response, and feedback routing remain unchanged. No consumer-local edit or technical plan is necessary.

Changed: Feature requests establish the current situation before the desired change

The response remains Current situation and desired change. The introduction removes the courtesy opening. The prompts give direct instructions in the same order:

  1. Tell us how things work today. Include what is not easy or is missing.
  2. Tell us who the change helps and why.
  3. Tell us what you want to add or change.
  4. Give a real example. Include the situation, your action, and the result you expect.

Optional starters use ordinary language. Maintainers review and refine feedback, then select the issue type. The form does not require literal Gherkin syntax, architecture decisions, or a technical implementation plan. Tasks and Bugs retain their technical delivery plans.

After merge, PSModule repositories that use inherited issue templates receive the organization-owned form without local configuration or code changes. Repositories with local overrides are unchanged. The chooser metadata, title prefix, feature/triage declarations, description field ID, single required textarea, field label, and blank-issue fallback remain unchanged.


Technical details

Scope and source identity

Candidate: 7eedb8a44c00bfa0f38d541ea88a7d7d791eaa19 on psmodule-feature-intake. The complete PR changes only .github\ISSUE_TEMPLATE\10-feature.yml: 23 additions and 5 deletions against f424237c98b5b020f80e8c9563dbc37256fc1ec0.

The prose revision is one ordinary commit after e7a14f7eb35eb77bff8b6ba7730c8870a660185d. It changes only the introduction, textarea description, and optional placeholder text. The form's Git blob changes from 8fb4a887c15961430e78980ac695a8af83029fbc to 29b9a60ed7e77745fdcf7f0e22b66026c864036a; the earlier identical-blob claim applies only to the completed test-removal correction, not this prose revision. Other campaign sessions own README/AGENTS/profile and bug/patch/general forms; this branch does not edit those paths.

Prose acceptance evidence

Concern Before this prose revision After Preserved result
Opening Courtesy thanks before the first instruction Starts with how things work today Current situation first
User benefit and requested change Questions and conditional wording Imperative Tell/Give prompts User benefit precedes the requested change
Expected result A real-situation question An example with situation, action, and expected result Observable scenario without mandatory formal syntax
Maintainer responsibility Will review and decide how to route Review and refine feedback, then select the issue type Same maintainers and native routing; present tense
Optional starters Would help / would like Change helps / I want Same ordinary-language hints, not prefilled answers

A one-time read-only YAML comparison allowed changes only to body[0].attributes.value, body[1].attributes.description, and body[1].attributes.placeholder. The remaining keys and values matched the preceding source. This includes form identity, routing declarations, field ID, required flag, field label, and absence of an assigned native type. The reference URLs and untouched blank-issue configuration retain their roles. This comparison is maintenance evidence, not a retained snapshot test or a test of GitHub behavior.

Fixed writing sources and limits

The campaign uses MSXOrg/docs at 1b0d4893c8fefabe604d04393068a8ff6f848082: Documentation Model, Natural Language, Writing Guide, Markdown, Documentation, and the applicable issue/Task/PR formats. All required pages were available.

The official STE overview, FAQ, and Issue 9 DOI were available. The PDF was read in memory, and its MD5 matched the official record. The review consulted active-voice rule 3.6, procedural rules 5.1-5.3, and relevant dictionary entries for prompt wording, including Tell/Give and alternatives to Explain/Describe. Reference content was not republished.

This is a scoped manual prose review, not a full word-by-word STE certification. Domain terms retain their MSX meaning. A word count, static lint result, or automated approval does not prove complete STE conformance.

Static checks and testing boundary

Existing command or inspection Result and limit
yamllint --strict .github\ISSUE_TEMPLATE\10-feature.yml Passed, exit 0. Existing static YAML lint only.
git --no-pager diff f424237c98b5b020f80e8c9563dbc37256fc1ec0 HEAD --check Passed. Whitespace inspection only.
Read-only comparison against e7a14f7eb35eb77bff8b6ba7730c8870a660185d Only permitted display values differ; non-prose keys and values are unchanged. No comparison script is committed.
gh api repos/PSModule/.github/pulls/89/files --paginate Exactly one changed file: the feature form, 23 additions/5 deletions.

The 198-line Pester snapshot suite remains removed. Its historical 25 assertions did not test GitHub rendering, submission, or routing; the earlier functional-coverage claim stays withdrawn. No replacement content assertions, schema snapshots, runtime simulation, test dependency, validator, workflow, hook, or test issue is added. No live GitHub form test was executed or claimed. Static/manual inspection and review do not establish that unexecuted coverage. Pre-commit alignment remains deferred, and the separate testing-policy cleanup remains independent.

Plan, review, and lifecycle

PSModule/.github#88 records the new user-directed prose acceptance decision and the preserved testing boundary. Its earlier test-removal identity is historical evidence; current prose evidence uses the candidate above.

Original delivery checkpoint (November 4): The exact-head review approved the candidate at 2026-11-04T12:27:50Z, with zero inline comments and no active review issues. Previous-head approvals are not reused. The November 4 review and static-check receipts above remain historical evidence, not a new review or current hosted CI result.

Original lifecycle-only pause: At the November 4 checkpoint, this PR stayed unmerged while the requested independent testing-cleanup proposals were created. Agent merge and automatic landing were disabled. This records the original delivery checkpoint; it is not an outstanding requirement to adopt or merge those proposals.

Current prerequisite record (November 11): The creation request is fulfilled by MSXOrg/docs#240, PSModule/Process-PSModule#551, and the source-bound no-test audits of MSXOrg/.github and PSModule/.github. No native dependency requires adoption or merge of those unrelated proposals. No content question remains. The fresh prerequisite and exact-head evidence records those source identities, native relationships, fresh existing-tool checks, and their limits.

The root has granted bounded operational acceptance of unchanged head 7eedb8a44c00bfa0f38d541ea88a7d7d791eaa19 under the user's live direction to review remaining changes and merge them when ready. The root has not granted this PR the exclusive global merge slot; Process owns it. A bounded exact-head squash is permitted only after that slot is granted. No merge or automatic landing is authorized now.

The current native state remains open, not draft, and unmerged, with GitHub autoMergeRequest=null. Agent merge remains disabled; actions remain address_reviews=true, fix_ci=true, resolve_conflicts=true, and merge_pr=false. Current hosted check-runs and commit statuses are empty, not green CI. No changed coverage or organization rule is claimed. The absent-CI, static/manual-only, and STE verification limits remain in force.

Changed surface Standards checked Framework/domain docs checked Result
Feature-form display prose Fixed MSX writing baseline; relevant official STE rules/dictionary; existing YAML guidance GitHub issue-form roles; native feedback refinement and Task/Bug planning boundaries Fixed in this PR
Removed-test state and evidence MSX Testing: Test supported behavior None (no owned form runtime) Aligned; live behavior unexecuted

The exact feature-form-path issue sweep found this Task, the separate writing campaign issues, and the broader YAML work. No additional issue is fully delivered by this feature-only branch; this PR has only PSModule/.github#88 as its closing delivery leaf. The Task remains open, and the PR is unmerged. Retired validator/governance work is not reinstated. Issue states/relationships, repository labels/protections, and other community files remain unchanged.

Related references

Related work

Copilot AI previously approved these changes Oct 31, 2026

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟢 Approved

No active review issues remain for the feature-request form update.

No open issues 🎉

What changed in this PR

Updates the organization’s inherited feature-request form so contributors describe their needs, motivation, and expected behavior without proposing an implementation. Existing template identity, routing labels, and the single required response remain unchanged.

Changes:

  • Replaces implementation-oriented prompts with consumer-focused questions and optional plain-language starters.
  • Clarifies maintainer routing and links canonical MSX issue and planning guidance.
  • Adds 23 focused Pester checks covering form structure, preserved routing, and consumer-facing prompts.
File Description
tests/​FeatureIntake.Tests.ps1 Adds regression checks for the feature form’s structure, routing, and consumer expectations.
.github/​ISSUE_TEMPLATE/​10-feature.yml Updates feature-request guidance and prompts while preserving submission requirements.

Review effort: Balanced

Copilot AI balanced review requested due to automatic review settings November 4, 2026 11:20
@MariusStorhaug Marius Storhaug (MariusStorhaug) changed the title 🩹 [Patch]: Feature requests describe consumer needs and expected behavior Feature requests start with the current situation and user value Nov 4, 2026
Copilot AI previously approved these changes Nov 4, 2026

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟢 Approved

No active review issues were identified in the feature-request form update.

No open issues 🎉

Review effort: Balanced

Copilot AI previously approved these changes Nov 4, 2026

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟢 Approved

There are no active review issues for the feature-request form guidance update.

No open issues 🎉

Review effort: Balanced

Copilot AI balanced review requested due to automatic review settings November 4, 2026 12:26

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟢 Approved

No active review issues are reported for the feature-request form update.

No open issues 🎉

Review effort: Balanced

@MariusStorhaug
Marius Storhaug (MariusStorhaug) deleted the psmodule-feature-intake branch November 11, 2026 17:33
Marius Storhaug (MariusStorhaug) added a commit that referenced this pull request Nov 11, 2026
The bug, patch, and general issue forms give direct instructions about
the information to include. The prompts request the same information
without courtesy filler, unbounded requests, or response-time promises.
Users and maintainers need no configuration changes.

<!-- ANNOUNCEMENT STOP -->

## Changed: Issue forms state the information to include

The bug form asks for the problem and expected behavior, the software
version used when the bug occurred, reproduction steps, code, and
output. The patch form asks for the desired change. The general form
asks for an issue description. The submission process and required
information do not change.

Instructions remain imperative. The wording uses en-US, short active
sentences, and stable technical terms. Past tense remains where the
prompt refers to the reported bug or the behavior the contributor
expected.

| Prompt | Before | After |
| --- | --- | --- |
| Bug introduction | "Thanks for taking the time" and "as much
information as possible so we can help you quickly" | "Give information
about the bug in the fields below." |
| Bug description | "what the bug is vs. what you expected to happen" |
"Give a description of the bug and the behavior you expected." |
| Bug version | "What version of the software were you running when
encountering the bug?" | "Give the software version you used when the
bug occurred." |
| Code snippet | "help us understand what you're trying to do" | "Add a
code snippet that shows the task you want to do." |
| Command output | "For powershell commands" and one combined run/paste
instruction | `PowerShell` has the correct capitalization. The run
instruction and "Paste the output here." are separate sentences. |
| Patch introduction and description | Courtesy text, a quick-help
promise, and "what you would want to change" | "Give a description of
the change in the field below." and "Give a description of what you want
to change." |
| General introduction and description | Courtesy text, a quick-help
promise, and "A clear and concise description." | "Give information
about the issue in the field below." and "Give a description of the
issue." |

<details>
<summary>Technical details</summary>

**Immutable scope and commits**

The scoped comparison is
`PSModule/.github@4e0092d` to
`a6c020d4e2227397e4766f3f6daefb8d360116a6`. GitHub and the pushed branch
report that exact head. The full diff contains exactly three files, with
17 additions and 13 deletions. Ten existing prose values change: six in
bug, two in patch, and two in general.

| Commit | Result |
| --- | --- |
| `6971f42fd6c5bada3fb7b7465255f1e9be1bf080` | Give direct instructions
for bug reports. Pushed before this draft opened and before
patch/general edits. |
| `a6c020d4e2227397e4766f3f6daefb8d360116a6` | Give direct instructions
for patch and general issues. |

Only `.github\ISSUE_TEMPLATE\01-bug.yml`, `02-patch.yml`, and
`99-general.yml` change. No test, snapshot, script, validator,
dependency, hook, workflow, planning document, or other repository file
is added or changed.

**Preserved interfaces and evidence requests**

The one-time read-only inspection parsed the baseline and exact
final-head Git content with the installed YAML parser. It compared all
keys and their order, scalar types, metadata, form names, chooser
descriptions, title prefixes, declared labels, field types/order/IDs,
textarea labels, required flags, and render values. Only the ten allowed
introduction/description values differ. All comments and exact URLs
match the baseline.

The bug field IDs remain `description`, `version`, `steps-to-reproduce`,
`code-snippet`, and `output`, in that order. Patch/general each retain
`description`. All seven textareas remain required. The exact render
values remain `powershell` and `Shell`; the lowercase render identifier
is not reader-facing prose.

The exact examples `$PSVersionTable`, `Get-Module -ListAvailable -Name
'ModuleName'`, `-Debug`, and `-Verbose` match the baseline. Module
version output, action/workflow version information, reproduction steps,
intended-task code, and the relevant-output-or-workflow-run-link
alternative remain in the prompts. No evidence requirement or technical
plan is added.

The Git content of `10-feature.yml` and `config.yml` is identical at the
baseline and final head. `blank_issues_enabled: true` remains unchanged.
Routing declarations and the other community files remain unchanged.

**Static results and limits**

| Check | Before | Exact final head |
| --- | --- | --- |
| `yamllint --strict` on the three owned forms | Exit `1`: 16
line-length errors and 3 document-start warnings | Exit `1`: 6 unchanged
comment-URL line-length errors and 3 unchanged document-start warnings |
| One-time parsed/diff interface inspection | Baseline Git content is
the comparison source | Exit `0`: only the ten allowed prose values
differ; all preserved interfaces and exact examples match |
| `git diff --check` across the full base-to-head diff | Clean baseline
| Exit `0`; clean worktree |

The final diagnostics are identical in each file: line `1:81`, 139
characters against limit 80; line `6:81`, 142 characters against limit
80; and the missing document-start warning at `2:1`. These fixed comment
URLs and document starts are outside this prose Task. The ten prose
line-length errors no longer occur. No diagnostic is hidden, no lint
rule is weakened, and no unrelated line is changed. The [baseline
audit](#91 (comment))
records every original diagnostic location and length.

These are static maintenance checks, not functional or live GitHub form
validation. No live rendering, submission, label application, or routing
test is executed. No test issue is submitted, and no simulated GitHub
runtime or retained assertion suite is introduced.

**Sources and standards review**

All six required MSX pages are available and were read at
`MSXOrg/docs@1b0d4893c8fefabe604d04393068a8ff6f848082`: Documentation
Model, Natural Language, Writing Guide, Markdown, Documentation, and
Spec-Driven Development Templates. The forms keep their native artifact
format; this Task introduces no capability specification or design
document. Repository README, AGENTS, contribution guidance, and the
applicable YAML, PR-format, contribution, and commit standards were
read.

The official STE explanation, FAQ, and Issue 9 DOI record are available.
The local Issue 9 PDF MD5 is `9c720341c350ed77943b2c73d01c716f`, which
matches Zenodo. The review consulted the local rules and dictionary for
active voice, short imperative instructions, and vocabulary choices. It
preserves software terms and exact syntax. The manual and extracted text
remain local. Prose inspection and lint do not certify full STE
conformance.

The domain references are the unchanged [GitHub issue-form
syntax](https://docs.github.com/en/communities/using-templates-to-encourage-useful-issues-and-pull-requests/syntax-for-issue-forms)
and [form
schema](https://docs.github.com/en/communities/using-templates-to-encourage-useful-issues-and-pull-requests/syntax-for-githubs-form-schema),
including the Markdown and textarea interfaces.

| Changed surface | Standards checked | Framework docs checked | Result
|
| --- | --- | --- | --- |
| `01-bug.yml` introduction and descriptions | Fixed MSX
writing/documentation baseline; YAML | GitHub issue-form syntax and form
schema | Fixed in this PR (prose); exception: #87 for
unchanged YAML diagnostics |
| `02-patch.yml` introduction and description | Fixed MSX
writing/documentation baseline; YAML | GitHub issue-form syntax and form
schema | Fixed in this PR (prose); exception: #87 for
unchanged YAML diagnostics |
| `99-general.yml` introduction and description | Fixed MSX
writing/documentation baseline; YAML | GitHub issue-form syntax and form
schema | Fixed in this PR (prose); exception: #87 for
unchanged YAML diagnostics |

**Task plan and review**

- [x] Read the owned forms and required sources; record baseline prose,
source identity, static diagnostics, and interface expectations before
editing.
- [x] Commit and push bug prose, then open the focused draft before
patch/general work.
- [x] Commit and push patch/general prose as a separate small change.
- [x] Inspect the full exact-head diff and parsed/static structure; run
existing YAML and whitespace checks; preserve interfaces and command
examples.
- [x] Complete the writing/format review and record source-bound
acceptance evidence in the Task audit trail and this PR.

The explicitly requested [exact-head
review](#92 (review))
approved `a6c020d4e2227397e4766f3f6daefb8d360116a6` at
`2026-11-04T12:24:49Z`, with no active review issues and zero inline
comments.

The scoped issue-convergence search inspected open `PSModule/.github`
issues with `ISSUE_TEMPLATE` in their title/body. Besides this Task, it
returned #87, #88, and
#90. Their YAML-tooling, feature-form, and
repository-entry-point outcomes are not delivered by this diff. No
additional issue converges; #91 is the only closing
delivery leaf. The separate YAML validation work is not a prerequisite
and is not revived.

The source tree has no authored publishing workflow for this route, and
this Task changes no versioned artifact or integration template. No
release-decision block or release label applies. There is no delivery
blocker within this prose scope. The known strict YAML diagnostics
remain explicit out-of-scope limitations.

**Original delivery checkpoint (2026-11-04).** The PR was drafted, and
Agent merge was disabled. The user's later explicit instruction to mark
the PR ready and enable Agent merge superseded draft-only retention.

**Current lifecycle (2026-11-11).** The PR is **open, non-draft, and
unmerged** at `a6c020d4e2227397e4766f3f6daefb8d360116a6`. GitHub
auto-merge is `null`. Agent merge is enabled only for review feedback,
CI failures, and merge conflicts: `address_reviews=true`, `fix_ci=true`,
`resolve_conflicts=true`, and `merge_pr=false`.

The user's live direction is: "Continue with reviewing the remaining
changes and merge them as they are ready. Involve me only when there is
a decision to be made on the content of the PR." The root coordinator
has granted bounded operational acceptance of this unchanged exact head
with all stated validation limits preserved. Process holds the exclusive
global merge slot. This record-only correction does not perform a merge
or change `merge_pr`.

The [fresh validation
audit](#91 (comment))
and [supplemental shipped-default
audit](#91 (comment))
record the current evidence. The pinned shipped YAML default reports
normal exit `0` with nine warnings and strict exit `2`. The installed
built-in default remains distinct: strict exit `1`, with six errors and
three warnings. The current hosted set has zero check runs and zero
status contexts; combined status is `pending` over an empty list. This
does not replace historical review-check receipts, establish green
hosted CI, or claim a change to organization policy. No source, Task
body, settings, labels, PR lifecycle state, or Agent merge controls
change in this body-only correction.

</details>

<details>
<summary>Related references</summary>

- Resolves #91
- References #89 for the unchanged feature form.
- References #87 for separate, unimplemented YAML
validation work.
- References [the fixed MSX writing
baseline](https://github.com/MSXOrg/docs/tree/1b0d4893c8fefabe604d04393068a8ff6f848082/src/docs).
- References [the official STE
explanation](https://www.asd-ste100.org/about_STE.html),
[FAQ](https://www.asd-ste100.org/STE_faq.html), and [Issue
9](https://doi.org/10.5281/zenodo.23666006).

</details>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Align inherited feature requests with consumer needs and scenarios

2 participants